home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
fdimg
/
oh!.2hd
/
OH!DEN_B.LZH
/
TOOLS
/
KEYWITCH
/
KW_S200.LZH
/
w04macro.mac
< prev
next >
Wrap
Text File
|
1995-03-20
|
2KB
|
94 lines
.ifndef __w04macro_mac
__w04macro_mac equ 1
.include w01dos.mac
.include w02iocs.mac
.include w03const.mac
********************************
*マクロ定義
*スーパーバイザーモードへ
super .macro
clr.l -(sp)
DOS _SUPER
move.l d0,(sp)
.endm
*ユーザーモードへ
user .macro
DOS _SUPER
addq.w #4,sp
.endm
*割り込み禁止
* X68030でのスプリアス割り込みの発生を避けるため、設定の位置に注意する。
* srの割り込みレベル以外のビットを操作しないこと。
di .macro
move.w sr,-(sp)
ori.w #$0700,sr *割り込み禁止
.endm
*割り込みレベルを復元
* X68030でのスプリアス割り込みの発生を避けるため、設定の位置に注意する。
* srの割り込みレベル以外のビットを操作しないこと。
ei .macro
move.w (sp)+,sr
.endm
*キー入力割り込みを禁止する
* X68030でのスプリアス割り込みの発生を避けるため、設定の位置に注意する。
di_key .macro
subq.w #2,sp
bclr.b #4,IMRA *キー入力割り込みマスククリア
sne.b (sp) *元の状態を記録
.endm
*キー入力割り込みマスクを復元する
* X68030でのスプリアス割り込みの発生を避けるため、設定の位置に注意する。
ei_key .macro
.local skip
tst.w (sp)+ *元の状態
bpl skip *クリアされていた
bset.b #4,IMRA *キー入力割り込みマスクセット
nop
skip:
.endm
*キャッシュOFF
cache_off .macro
.local not030
tst.b MPUTYP.w
beq not030 *68030ではない
moveq.l #1,d1
IOCS _SYS_STAT *現在の状態を取得する
move.l d0,-(sp) *現在の状態
moveq.l #$FC,d2
and.l d0,d2
moveq.l #4,d1
IOCS _SYS_STAT *命令とデータのキャッシュをOFF
not030:
.endm
*キャッシュの状態を復元
cache_on .macro
.local not030
tst.b MPUTYP.w
beq not030 *68030ではない
move.l (sp)+,d2 *元の状態
moveq.l #4,d1
IOCS _SYS_STAT *キャッシュの状態を復元する
not030:
.endm
*キャッシュをフラッシュする
cache_flush .macro
.local not030
tst.b MPUTYP.w
beq not030 *68030ではない
moveq.l #3,d1
IOCS _SYS_STAT *キャッシュフラッシュ
not030:
.endm
.endif